Executing Dynamic Task Graphs Using Work-Stealing

نویسندگان

  • Kunal Agrawal
  • Charles E. Leiserson
  • Jim Sukha
چکیده

Nabbit is a work-stealing library for executing dynamic task graphs with arbitrary dependencies. We prove that Nabbit achieves asymptotically optimal performance for task graphs whose nodes have constant in-degree and out-degree. We have implemented Nabbit in the multithreaded programming language Cilk++. Since the implementation of Nabbit required no modification to the Cilk++ runtime system, it should not be hard to port it to other fork-join languages and libraries. In order to evaluate the performance of Nabbit, we implemented a dynamic program representing the Smith-Waterman algorithm, an irregular dynamic program on a two-dimensional grid which is used in computational biology. Our experiments indicate that when task-graph nodes are mapped to reasonably sized blocks, Nabbit exhibits low overhead and scales as well as or better than other scheduling strategies. In some cases, the Nabbit implementation even manages to outperform a divide-and-conquer

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Dynamic Task Parallelism with a GPU Work-Stealing Runtime System

NVIDIA’s Compute Unified Device Architecture (CUDA) and its attached C/C++ based API went a long way towards making GPUs more accessible to mainstream programming. So far, the use of GPUs for high performance computing has been primarily restricted to data parallel applications, and with good reason. The high number of computational cores and high memory bandwidth supported by the device makes ...

متن کامل

Worst-Case Timing Analysis of Cycle-Stealing DMA I/O Tasks

A DMA controller that operates in the cycle-stealing mode is allowed to transfer data only when the CPU does not need the system bus. Thus, the execution time of a cycle-stealing DMA I/O task depends on the sequence of instructions executing concurrently with it. This paper describes a method for bounding the worst-case execution time (WCET) of a cycle-stealing DMA I/O task. We rst deene the ta...

متن کامل

Compiler Support for Work-Stealing Parallel Runtime Systems

Multiple programming models are emerging to address an increased need for dynamic task parallelism in multicore shared-memory multiprocessors. Examples include OpenMP 3.0, Java Concurrency Utilities, Microsoft Task Parallel Library, Intel Threading Building Blocks, Cilk, X10, Chapel, and Fortress. Scheduling algorithms based on work-stealing, as embodied in Cilk’s implementation of dynamic spaw...

متن کامل

Bounding DMA Interference on Hard-Real-Time Embedded Systems

A DMA controller that operates in the cycle-stealing mode transfers data by stealing bus cycles from the CPU. The concurrent contention for the I/O bus by a CPU task and a cycle-stealing DMA I/O task retards their progress and extends their execution times. In this paper we first describe a method for bounding the worst-case execution time (WCET) of a CPU task when cycle-stealing DMA I/O is pre...

متن کامل

Hierarchical Work-Stealing

dynamic load-balancing on hierarchical platforms. In particular, we consider applications involving heavy communications on a distributed platform. The work-stealing algorithm introduced by Blumofe and Leiserson is a commonly used technique to balance load in a distributed environment but it suffers from poor performance with some communication-intensive applications. We describe here several v...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2010